package net.mfjassociates.finance.domain.mfjfin_newdb;

import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.roo.addon.jpa.identifier.RooIdentifier;

@Embeddable
@RooIdentifier(dbManaged = false)
public final class TimeCardHoursPK {

	@Column(name = "TimeCardDetailID", nullable = false)
    private Integer timeCardDetailId;

	@Column(name = "TimeCardID", nullable = false)
    private Integer timeCardId;

	@Column(name = "DateWorked", nullable = false)
    @Temporal(TemporalType.DATE)
    @DateTimeFormat(style = "M-")
    private Date dateWorked;

	@Column(name = "ProjectID", nullable = false)
    private Integer projectId;

	@Column(name = "WorkDescription", nullable = false, length = 255)
    private String workDescription;

	@Column(name = "BillableHours", nullable = false)
    private Double billableHours;

	@Column(name = "BillingRate", nullable = false, precision = 19, scale = 4)
    private BigDecimal billingRate;

	@Column(name = "WorkCodeID", nullable = false)
    private Integer workCodeId;

	@Column(name = "InvoiceID", nullable = false)
    private Integer invoiceId;

	public TimeCardHoursPK(Integer timeCardDetailId, Integer timeCardId, Date dateWorked, Integer projectId, String workDescription, Double billableHours, BigDecimal billingRate, Integer workCodeId, Integer invoiceId) {
        super();
        this.timeCardDetailId = timeCardDetailId;
        this.timeCardId = timeCardId;
        this.dateWorked = dateWorked;
        this.projectId = projectId;
        this.workDescription = workDescription;
        this.billableHours = billableHours;
        this.billingRate = billingRate;
        this.workCodeId = workCodeId;
        this.invoiceId = invoiceId;
    }

	private TimeCardHoursPK() {
        super();
    }

	public Integer getTimeCardDetailId() {
        return timeCardDetailId;
    }

	public Integer getTimeCardId() {
        return timeCardId;
    }

	public Date getDateWorked() {
        return dateWorked;
    }

	public Integer getProjectId() {
        return projectId;
    }

	public String getWorkDescription() {
        return workDescription;
    }

	public Double getBillableHours() {
        return billableHours;
    }

	public BigDecimal getBillingRate() {
        return billingRate;
    }

	public Integer getWorkCodeId() {
        return workCodeId;
    }

	public Integer getInvoiceId() {
        return invoiceId;
    }
}
